#ifndef STUDENT_INFORMATION_DIALOG_H
#define STUDENT_INFORMATION_DIALOG_H

#include <QDialog>

namespace Ui {
class StudentInformationDialog;
}

class StudentInformationDialog : public QDialog
{
    Q_OBJECT

public:
    explicit StudentInformationDialog(QWidget *parent = nullptr);
    ~StudentInformationDialog();

private:
    Ui::StudentInformationDialog *ui;

private:

    enum DialogStatus{
        AlterInformation = 0,
        InsertInformation = 1,
    };

    //记录原始学生id
    QString m_originalStudentId;
    //记录原始密码
    QString m_originalPassword;
    //界面状态
    int m_dialogStatus = 0;
private:

    /**
     * @brief 初始化界面样式
     */
    void initializeSetStyleSheet();
    /**
     * @brief 新增学生信息到数据库
     * @return
     */
    bool insertStudentInformation2Database();
    /**
     * @brief 更新学生信息到数据库
     * @return
     */
    bool updateStudentInformation2Database();
    /**
     * @brief 更新账号信息到数据库
     * @return
     */
    bool updateLoginInformation2Database();

public slots:
    /**
     * @brief 初始化新增界面数据
     */
    void initializeAlterStudentInformationDialog(QString id);
    /**
     * @brief 初始化修改信息界面数据
     */
    void initializeInsertStudentInformationDialog();

signals:
    /**
     * @brief 跳转到主界面
     */
    void studentInformationDialog2MainInterface();
};

#endif // STUDENT_INFORMATION_DIALOG_H
